/* 文件操作 */
const fs = require('fs')
const path = require('path')

/**
 * 清除目录
 * @param {string} dirPath 目录路径
 * @param {boolean} deleteSelf 是否删除目录自身
 */
function clearDir(dirPath, deleteSelf = false) {
  if (fs.existsSync(dirPath)) {
    fs.readdirSync(dirPath).forEach((file) => {
      const curPath = path.join(dirPath, file)

      if (fs.lstatSync(curPath).isDirectory()) {
        // 递归删除子文件夹
        clearDir(curPath, true)
      } else {
        // 删除文件
        fs.unlinkSync(curPath)
      }
    })
    // 是否删除目录本身
    if (deleteSelf) {
      fs.rmdirSync(dirPath)
    }
  }
}

/**
 * 创建目录（如果不存在）
 * @param {string} dirPath
 */
function mkdirIfNotExist(dirPath) {
  if (!fs.existsSync(dirPath)) {
    fs.mkdirSync(dirPath)
  }
}

module.exports = {
  clearDir,
  mkdirIfNotExist
}
